#ifndef INTRINSIC_LS
#define INTRINSIC_LS

#include "cvxImage.h"

/*
const Mat &orgImg:       original image, 0-255, unsigned char
const Mat &LchannelImg   0 - 255 unsigned char, L channel of Lab space
const Mat &shaAbsMap: 0, 1  unsigned char, stroke label
const Mat &simAbsMap: 0-255 unsigned char, stroke label
const Mat &simRefMap: 0-255 unsigned char, stroke label
*/
void solve_intrinsic_ls(const Mat &orgImg, const Mat &shaAbsMap, 
						const Mat &simShaMap, const Mat &simRefMap,
						const vector<int> &simRefPixNum, const vector<int> &simShaPixNum);

void test_4DlinearModel(const Mat &orgImage, const Mat &shadingGT);

void test_4DlinearModelB(const Mat &orgImage, const Mat &shadingGT);

void solve_intrinsic_ls_area(const Mat &orgImg, const Mat &shaAbsMap, 
							 const vector<vector<int>> &simRefPix, 
							 const vector<vector<int>> &simShaPix);

#endif